package com.flyqiu.form.api;

import com.flyqiu.common.bean.FlyQiuBeanManage;
import com.flyqiu.common.transaction.FlyQiuTransactionManage;
import com.flyqiu.form.api.col.FlyQiuStoreColTypeManage;
import com.flyqiu.form.api.event.FlyQiuTableDataEventManage;
import com.flyqiu.form.api.event.FlyQiuTableEventManage;
import com.flyqiu.form.api.rule.FlyQiuDataRuleManage;
import com.flyqiu.form.api.service.FlyQiuTableConfigService;
import com.flyqiu.form.api.store.FlyQiuAvueDynamicService;
import com.flyqiu.form.api.store.FlyQiuFormCoreService;
import com.flyqiu.form.api.store.FlyQiuFormStoreManage;

public interface FlyQiuFormContext {
    /**
     * 获取Bean管理
     *
     * @return {@link FlyQiuBeanManage}
     */
    FlyQiuBeanManage getBeanManage();

    /**
     * 事务管理器
     *
     * @return {@link FlyQiuTransactionManage}
     */
    FlyQiuTransactionManage getTransactionManage();

    /**
     * 表单事件管理
     *
     * @return {@link FlyQiuTableEventManage}
     */
    FlyQiuTableEventManage getFormEventManage();

    /**
     * 表单数据事件管理
     *
     * @return {@link FlyQiuTableDataEventManage}
     */
    FlyQiuTableDataEventManage getFormDataEventManage();

    /**
     * 表单配置服务
     *
     * @return {@link FlyQiuTableConfigService}
     */
    FlyQiuTableConfigService getTableConfigService();

    /**
     * 动态表单服务
     *
     * @return {@link FlyQiuAvueDynamicService}
     */
    FlyQiuAvueDynamicService getAvueDynamicService();

    /**
     * 表单存储服务
     *
     * @return {@link FlyQiuFormStoreManage}
     */
    FlyQiuFormStoreManage getFormStoreManage();

    /**
     * 数据规则管理
     *
     * @return {@link FlyQiuDataRuleManage}
     */
    FlyQiuDataRuleManage getFlyQiuDataRuleManage();

    /**
     * 云表单核心服务
     *
     * @return {@link FlyQiuFormCoreService}
     */
    FlyQiuFormCoreService getFlyQiuCoreFormService();

    /**
     * 存储列类型管理
     *
     * @return {@link FlyQiuStoreColTypeManage}
     */
    FlyQiuStoreColTypeManage getStoreColTypeManage();

}
